package com.velvetantler.weather

import android.app.Application
import com.qweather.sdk.JWTGenerator
import com.qweather.sdk.QWeather
import com.velvetantler.weather.bean.UserInfoResponse
import com.velvetantler.weather.utils.CityStarUtils


class WeatherApplication : Application() {

    companion object {
        // 全局上下文对象
        private var globalApplicationContext: WeatherApplication? = null
        fun getGlobalContext(): WeatherApplication? {
            return globalApplicationContext
        }
    }

    /**
     * 临时存放用户个人信息
     */
    var userInfo: UserInfoResponse? = null

    override fun onCreate() {
        super.onCreate()

        // 初始化全局上下文对象
        globalApplicationContext = this
        // 初始化天气api的配置
        initWeatherSdk()
        //
        CityStarUtils.init(this)
    }

    fun initWeatherSdk() {
        // 初始化天气token配置和集成
        val instance = QWeather.getInstance(this, WeatherConstants.WEATHER_HOST) // 初始化服务地址
            .setLogEnable(true);  // 启用调试日志（生产环境建议设置为 false）

        // 通过SDK提供的JWTGenerator设置令牌生成器，其实现自TokenGenerator接口
        val jwt = JWTGenerator(
            WeatherConstants.WEATHER_PRIVATE_KEY,  // 私钥
            WeatherConstants.WEATHER_PROJECT_ID,  // 项目ID
            WeatherConstants.WEATHER_JWT_ID  // 凭据ID
        ) // 凭据ID
        instance.setTokenGenerator(jwt)
    }
}